home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 80 / XENIATGM80.iso / Goodies / Blood 2 / Source / data.z / LTGUISliderCtrl.h < prev    next >
C/C++ Source or Header  |  1999-04-14  |  4KB  |  98 lines

  1. // LTGUISliderCtrl.h: interface for the CLTGUISliderCtrl class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4.  
  5. #if !defined(AFX_LTGUISLIDERCTRL_H__3809E911_615A_11D2_BDA6_0060971BDC6D__INCLUDED_)
  6. #define AFX_LTGUISLIDERCTRL_H__3809E911_615A_11D2_BDA6_0060971BDC6D__INCLUDED_
  7.  
  8. #if _MSC_VER >= 1000
  9. #pragma once
  10. #endif // _MSC_VER >= 1000
  11.  
  12. #include "LTGUICtrl.h"
  13.  
  14. class CLTGUISliderCtrl : public CLTGUIFadeColorCtrl  
  15. {
  16. public:
  17.     CLTGUISliderCtrl();
  18.     virtual ~CLTGUISliderCtrl();
  19.  
  20.     // Create the control
  21.     // pClientDE     - Pointer to the client interface.    
  22.     // hText         - Text to display to the left of the slider bar
  23.     // pFont         - The font to use for rendering the strings.    
  24.     // nSliderOffset - The number of pixels that the slider is from the left position.  This lets you line
  25.     //                   up sliders that have different text strings.
  26.     // hBarSurf         - The surface representing the "slider bar"
  27.     // hTabSurf         - The surface representing the slider tab which moves over the bar
  28.     // pnValue         - Pointer to the value to store the position in when UpdateData is called
  29.     DBOOL            Create ( CClientDE *pClientDE, HSTRING hText, CLTGUIFont *pFont, int nSliderOffset,
  30.                              HSURFACE hBarSurf, HSURFACE hTabSurf, int *pnValue=DNULL);
  31.  
  32.     // Update data
  33.     void            UpdateData(DBOOL bSaveAndValidate=DTRUE);
  34.  
  35.     // Destroys the control
  36.     void            Destroy ( );
  37.     
  38.     // Sets the min and max of the slider bar
  39.     void            SetSliderRange(int nMin, int nMax);
  40.  
  41.     // Gets/Sets the position of the slider bar
  42.     int                GetSliderPos()                        { return m_nSliderPos; }
  43.     void            SetSliderPos(int nPos);
  44.     
  45.     // Sets the slider increment which is how much to move the bar when left and right is pressed
  46.     void            SetSliderIncrement(int nIncrement)    { m_nSliderIncrement=nIncrement; }
  47.  
  48.     // Sets the text for the slider bar
  49.     void            SetText(HSTRING hString);    
  50.     void            SetText(int messageCode);
  51.  
  52.     // Sets the text alignment (CF_JUSTIFY_LEFT, CF_JUSTIFY_CENTER, CF_JUSTIFY_RIGHT)
  53.     void            SetTextAlignment(int nAlign)        { m_nAlignment=nAlign; }    
  54.  
  55.     // Render the control
  56.     void            Render ( HSURFACE hDestSurf );
  57.  
  58.     // Set the font
  59.     void            SetFont ( CLTGUIFont *pFont );    
  60.  
  61.     // Width/Height calculations
  62.     int                GetWidth ( )                        { return m_dwWidth; }
  63.     int                GetHeight ( )                        { return m_dwHeight; }
  64.  
  65.     // Handle left and right presses
  66.     void            OnLeft();
  67.     void            OnRight();
  68.  
  69. protected:
  70.     // The selection for this control has changed    
  71.     void            OnSelChange();
  72.  
  73.     void            RenderSliderText(HSURFACE hDestSurf);
  74.     void            RenderSliderBar(HSURFACE hDestSurf);
  75.  
  76. protected:                
  77.     CLTGUIFont        *m_pFont;                // The font for this control
  78.     
  79.     DDWORD            m_dwWidth;                // The width of the control
  80.     DDWORD            m_dwHeight;                // The height of the control    
  81.  
  82.     HSTRING            m_hText;                // The text string for the slider
  83.     int                m_nMinSlider;            // The min slider position
  84.     int                m_nMaxSlider;            // The max slider position
  85.     int                m_nSliderPos;            // The current slider position
  86.     int                m_nSliderIncrement;        // The amount that the slider is moved when left and right is pressed
  87.  
  88.     int                m_nAlignment;            // The text alignment (CF_JUSTIFY_LEFT, CF_JUSTIFY_CENTER, CF_JUSTIFY_RIGHT)
  89.  
  90.     int                m_nSliderOffset;        // The number of pixels that the slider is from the left position
  91.     HSURFACE        m_hBarSurf;                // The surface representing the "slider bar"
  92.     HSURFACE        m_hTabSurf;                // The surface representing the slider tab which moves over the bar
  93.  
  94.     int                *m_pnValue;                // Pointer to the value to store the position in when UpdateData is called    
  95. };
  96.  
  97. #endif // !defined(AFX_LTGUISLIDERCTRL_H__3809E911_615A_11D2_BDA6_0060971BDC6D__INCLUDED_)
  98.